package meow

/** アイコン        */
class AvatorIcon implements Serializable {
  // Accountを検索するたびにeagerフェッチされては敵わないので
  // Accountと関連付けしてない。ロジックベースで username を
  // キーにAccountと関連づける。
  String username
  byte[] largeIcon
  byte[] smallIcon

  static constarins = {
    username unique: true
  }

  transient iconCache

  def beforeUpdate = {
    // アイコンを更新するので，キャッシュを一旦クリアする
    iconCache.remove username
  }

  static def hasIcon(username) {
    return (withCriteria {
            projections { rowCount() }
            eq 'username', username
            }[0] != 0)
  }
}
